1. Field of the Invention
The present invention relates to recognizing and simulating two-dimensional shapes in evaluating semiconductor elements. In particular, the present invention relates to a simulation method and a simulation apparatus that are used to calculate effective angles (hereinafter referred to as incident angles) on a semiconductor element. The incident angles are used to simulate particles flying toward the surface of the semiconductor element during the manufacturing thereof.
2. Description of the Prior Art
Semiconductor elements and semiconductor integrated circuit devices are mass-produced after making and evaluating experimental pieces. FIG. 1 is a flowchart showing steps to produce an experimental piece of a semiconductor element. Basic circuits, circuit cells, and processes are designed. Based on the designs, experimental pieces are produced and evaluated in their electric characteristics, etc. If they show good results, the semiconductor element is mass-produced. If the evaluation results are not good, the circuits and/or the processes are redesigned. These steps are repeated to provide satisfactory products. When designing processes and making experimental pieces, process simulations are carried out, and when evaluating the experimental pieces, device simulations are carried out, to improve the quality and performance of semiconductor products.
When designing a semiconductor element, it is necessary to evaluate the electric characteristics of the element, which are dependent on the shape and impurity distribution of the element. To measure the electric characteristics of a semiconductor element, it is usual to make experimental pieces of the element. Preparing such experimental pieces needs a lot of time and labor, and therefore, deteriorates the developing efficiency of semiconductor elements. Semiconductor elements are very fine, and therefore, evaluating experimental pieces by manpower is substantially impossible.
To solve these problems, there is a technique of sampling the shape of a semiconductor element by scanning-electron microscope, preparing shape data from the sample according to image processing technology, and using the shape data on a computer to evaluate semiconductor elements. There is another technique that employs a computer to manipulate the shapes of semiconductor elements from the beginning. These techniques are used to simulate, evaluate, and analyze semiconductor elements and element manufacturing processes.
S. M. Sze has disclosed a process simulation technique in "VLSI Technology" McGraw-Hill, 1993. This technique defines a two-dimensional calculation window on a semiconductor element. The window is divided into a material region where solid material is present and a vacuum region where a vacuum or gas is present. The process simulation takes place on each of these regions. FIG. 2 is a cross sectional view showing a simulation result of a transistor formed on a semiconductor substrate. The substrate shows impurity distributions. The transistor is a MOS transistor whose gate 1 is formed on the substrate. The gate 1 is covered with an insulation film 2, on which a metal wire 3 of, for example, aluminum is formed.
A technique that simulates changes in the shape of a material region defined in a calculation window is called a shape simulation. Among shape simulation techniques, a technique that carries out a simulation based on a string model defined along a boundary between the material and vacuum regions of a calculation window is a two-dimensional shape simulation. FIG. 3 shows an example of a string model. A string 501 consists of a series of segments Si each of which extends between adjacent points (Pi-1, Pi). The string 501 defines a two-dimensional material shape 502. Data necessary for expressing the string 501 are sequential point numbers or sequential segment numbers, the coordinates of points, and an array number. The origin of the array may be any one of the points on the string 501, and therefore, the handling of the string 501 is easy.
FIG. 4A is a cross sectional view showing an intermediate part between gates of MOS transistors. A square 1501 is sampled to prepare a string model of FIG. 4B. A material region 1503 and a vacuum region 1502 are each represented with a series of points and/or segments.
When simulating surface changes during a deposition or etching process, a surface string 1504 of FIG. 4C between the vacuum region 1502 and the material region 1503 is defined. This is because the deposition or etching process affects only the surface of a semiconductor substrate. A sequence of points on the string 1504 usually follows a sequence of points of the vacuum region 1502. This is to make the handling of the string 1504 simpler when several material regions are facing the surface. Once a sequence of points along the vacuum region 1502 is determined as shown in FIG. 4C, a boundary point that is in contact with the calculation window 1501, vacuum region 1502, and material region 1503 is searched for from a border point A at the upper right corner of the calculation window 1501 toward the boundary of the vacuum region 1502. This easily and quickly finds an origin of the string 1504 between the regions 1502 and 1503.
The shape simulation carried out on the string 1504 simulates, for example, changes to occur along the string 1504 during a deposition process that deposits metal such as aluminum on the material region 1503 in a vacuum due to physical adsorption. During the simulation, every point on the string 1504 has a different effective angle (incident angle) within which particles may fly toward the point. Accordingly, a depth angle calculation must be carried out on every point Pi on the string 1504. FIG. 5 explains a depth angle at a point Pi on a given string between a vacuum region and a material region.
FIG. 6 shows the definition of the depth angle. A depth angle at a point Pi on a given string is defined around a reference line that extends vertically from the point Pi. The reference line is orthogonal to a horizontal line as shown in the right part of FIG. 6. The depth angle is the sum of absolute values of a minimum angle .theta.min and a maximum angle .theta.max. In this specification, the sign of an angle is positive in a counterclockwise direction from a reference line and negative in a clockwise direction from the reference line.
FIG. 7 is a block diagram showing a shape simulation apparatus. The apparatus has a data reader 201, a process controller 202, and a result output unit 203. The data reader 201 reads a semiconductor process flow and converts it into data to be handled by the process controller 202. The process controller 202 repeatedly operates simulators according to a sequence of manufacturing processes. The manufacturing processes include a lithography process to be simulated by a lithography simulator 204, a CMP process to be simulated by a CMP simulator 205, an etching process to be simulated by an etching simulator 206, and a deposition process to be simulated by a deposition simulator 207. Simulation results and intermediate results are output to a display or a printer through the result output unit 203.
FIG. 8 shows the structure of the deposition simulator 207 of FIG. 7. The deposition simulator 207 has a controller 301. The controller 301 receives data from the process controller 202, transfers data among parts controlled by the controller 301, and updates time counters. Among the parts controlled by the controller 301, a surface string extractor 302 extracts a surfaces string between a vacuum region and a material region according to the technique mentioned above. A depth angle calculator 303 calculates a depth angle at each point on the surface string according to calculation methods to be explained later. A shift calculator 304 calculates a shift of each boundary point according to the calculations made by the depth angle calculator 303. A shifter 305 shifts the boundary points according to the calculations made by the shift calculator 304. An abnormal shape processor 306 corrects abnormal shapes such as loops and extraterritorial protrusions that occur when the shifter 305 shifts the boundary points.
FIG. 9 shows a conventional technique employed by the depth angle calculator 303 of FIG. 8. A depth angle at a point Pi is the sum of absolute values of a maximum angle .theta.max and a minimum angle .theta.min with respect to a reference line extending from the point Pi. The maximum angle .theta.max is a minimum of angles defined by the reference line and points ranging from the point Pi to an origin P1. The minimum angle min is a maximum of angles defined by the reference line and points ranging from the point Pi to a terminal Pn.
FIG. 10 is a block diagram showing the structure of the depth angle calculator 303 of FIG. 8. The depth angle calculator 303 has an initializing unit 401, a calculation controller 402, and a postprocessor 405. The initializing unit 401 sets an origin and a terminal among a series of points on a given surface string, as well as a first point where a depth angle is calculated at first. The calculation controller 402 traces the string from the origin to the terminal and stores minimum and maximum angles calculated at each point on the string. A maximum calculator 403 finds for a point Pi a minimum of angles defined by a reference line and points ranging from the point Pi to the origin, to provide a maximum angle at the point Pi. A minimum calculator 403 finds for a point Pi a maximum of angles defined by a reference line and points ranging from the point Pi to the terminal, to provide a minimum angle at the point Pi. The postprocessor 405 handles maximum and minimum angles that are out of criteria.
FIG. 11 is a flowchart showing the details of the depth angle calculating technique according to the prior art. There are 15 steps between "Start" and "End." Step 901 corresponds to the initializing unit 401, steps 902 to 906 to the maximum calculator 403, steps 907 to 911 to the minimum calculator 404, steps 912 to 914 to the calculation controller 402, and step 915 to the postprocessor 405.
Step 901 carries out initialization for calculating depth angles. More precisely, for a given surface string along which depth angles are going to be calculated, step 901 sets an origin P1, a terminal Pn, a target point Pi (at the origin P1 at first), a maximum angle of a depth angle at the origin P1 according to boundary conditions, and a minimum angle of a depth angle at the terminal Pn according to the boundary conditions.
Step 902 sets a maximum angle search point PL at the target point Pi, calculates an angle .theta. defined by a segment between points PL-1 and Pi and a reference line passing through the point Pi, and initializes an integrated value .SIGMA..theta. to .theta. and a maximum angle .theta.max to .theta..
Step 903 checks to see if the search point PL is equal to the origin P1. If they are equal to each other, step 907 is carried out, and if not, step 904 sets a next search point PL-1 on the origin side of the search point PL. Step 905 calculates an angle .DELTA..theta. defined by a segment between the points Pi and PL and a segment between the points Pi and PL-1. Step 906 updates the integrated value .SIGMA..theta. to the sum of .DELTA..theta. and .SIGMA..theta.. If .SIGMA..theta. is smaller than .theta. max, .theta.max is updated to .SIGMA..theta. and PL to PL-1. Then, the flow returns to step 903. Steps 903 to 906 are repeated until step 903 becomes true.
Step 907 sets a minimum angle search point PR to the target point Pi, calculates an angle 0 defined by a segment between points PR+1 and Pi and the reference line passing through the point: Pi, and initializes the integrated value .SIGMA..theta. to .theta. and a minimum angle .theta.min to .theta..
Step 908 checks to see if the search point PR is equal to the terminal Pn. If they are equal to each other, the flow advances to step 912. If they are not equal to each other, step 909 sets a next search point PR+1 on the terminal side of the search point PR. Step 910 calculates an angle .DELTA..theta. defined by a segment between the points Pi and PR and a segment between the points Pi and PR+1. Step 911 updates the integrated value .SIGMA..theta. to the sum of .SIGMA..theta. and .DELTA..theta., and if .SIGMA..theta. is larger than .theta.min, updates .theta.min to .SIGMA..theta. and PR to PR+1. Then, the flow returns to step 908, and steps 908 to 911 are repeated until step 908 becomes true.
Step 912 saves the maximum angle .theta.max and minimum angle .theta.min calculated in steps 902 to 911 to determine a depth angle at the point Pi.
Step 913 checks to see if the point Pi is equal to the terminal Pn. If they are equal to each other, step 915 is carried out, and if not, step 914 advances the point Pi by one toward the terminal Pn, and the flow returns to step 902. Steps 902 to 914 are repeated until step 913 determines that the point Pi is equal to the terminal Pn. Step 915 processes .theta.max and .theta.min that are out of criteria (for example, .theta.min&gt;.theta.max), and the flow ends.
When the number "n" of points on a given surface string increases, the number of calculations the prior art must carry out increases. Namely, the number of calculations of the prior art is dependent on time necessary for repeating steps 902 to 914. Steps 902 to 914 involve double loops and require "n" operations for tracing a string from an origin to a terminal thereof and "n-1" operations for calculating .theta.min and .theta.max for a depth angle at each point on the string. Accordingly, the prior art must carry out n.sup.2 operations, i.e., O(n.sup.2) as a whole. The number of other operations is less than O(n). Consequently, calculation time by the prior art parabolically increases as the number of points on a given string increases. If the number of points on a string is several thousands, the calculation time will be extremely large.
FIG. 12 shows a graph showing calculation time with respect to various numbers of points on a surface string according to the prior art, with 145 points being set as 1. This graph is based on the surface string of FIG. 4C. The calculation time in the graph is dimensionless. As is apparent in the graph, the prior art parabolically increases calculation time as the number of points increases.
To correctly express a two-dimensional shape with a string model, the number of points to plot the string must sufficiently be large. In particular, to express material and vacuum regions having intricate shapes, the number of points on a string must be several hundreds to several thousands to eliminate the influence of tolerance in the sizes of simulation areas and in expressing shapes. For correctly simulating a deposition process to deposit metal such as aluminum on a substrate having a complicated surface shape, several hundreds to several thousands of points are needed to express a string model of the substrate surface. This parabolically increases the depth angle calculation time of the prior art. In this case, the prior art is hardly a practical solution.
During the deposition process, the shape of a surface varies every moment. To cope with this, the shape is simulated by dividing a deposition time into shorter intervals at which depth angle calculations are repeated. In this case, a parabolic increase in the depth angle calculation time of the prior art causes a serious problem.